const mysql = require("mysql2");

const config = {
  host: "124.71.129.6", // 主机地址
  user: "xzdc", // 用户名
  // user: "xzdcTest", // 测试数据库用户名
  password: "123456", // 密码
  port: 3306, // 端口号，默认为 3306
  database: "xzdc", // 数据库名称
  // database: "xzdctest", // 测试数据库名称
//   charset: "UTF8_GENERAL_CI", // 连接字符集，默认为 UTF8_GENERAL_CI
  connectTimeout: 10000, // 连接超时时间，单位为毫秒
  multipleStatements: false // 是否允许一个 query 中有多个 MySQL 语句，默认为 false
}

var pingInterval = null
var connection = null
function connect() {
  if (connection !== null) {
    connection.destroy();
    connection = null;
  }
  // 创建数据库连接
  connection = mysql.createConnection(config);

  // 连接到数据库
  connection.connect((err) => {
    if (err) {
      console.error("Error connecting to database:", err);
      return;
    }
    console.log("Connected to database");
  }); 

  // 每个小时ping一次数据库，保持数据库连接状态
  if(pingInterval){
    clearInterval(pingInterval);
  }
  pingInterval = setInterval(() => {
    connection.ping((err) => {
          if (err) {
              console.log('ping error: ' + JSON.stringify(err));
              connect()
          }
      });
  }, 3600000);
}
connect()

// 在数据库连接关闭时触发
connection.on("end", () => {
  console.log("Database connection closed");
});

// 在发生错误时触发
connection.on("error", (err) => {
  console.error("Database error:", err);
  connect()
});

// 关闭数据库连接
// connection.end();

module.exports = connection